package main.java.sort.pratice;

import java.util.Arrays;

/**
 * @Author: 郑国荣
 * @Date: 2023-08-02-16:40
 * @Description: 默写、练习
 */
public class Sort {

    public static void selectSort(int[] arr){
        if (arr==null||arr.length<2) return;

        int len = arr.length;
        for (int i = 0; i < len; i++) {
            int min=i;
            for (int j = i+1; j < len; j++) {
                if (arr[min]>arr[j]){
                    min=j;
                }
            }
            int temp=arr[min];
            arr[min]=arr[i];
            arr[i]=temp;
        }
    }


    public static void bubbleSort(int[] arr){
        if (arr==null||arr.length<2) return;
        int len=arr.length;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < len-1-i; j++) {
                int temp;
                if (arr[j]>arr[j+1]){
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    public static void insertSort(int[] arr){
        if (arr==null||arr.length<2){
            return;
        }
        int len = arr.length;
        for (int i = 1; i < len; i++) {
            int temp = arr[i];
            int j=i-1;
            while (j>=0 && temp<arr[j]){
                j--;
            }

            for (int k = i; k > j + 1; k--) {
                arr[k]=arr[k-1];
            }
            arr[j+1]=temp;
        }
    }

    public static void main(String[] args) {
        int[] arr = new int[]{3,2,1,9,6,4,3,2};
        // [1, 2, 2, 3, 3, 4, 6, 9]
//        insertSort(arr);
//        bubbleSort(arr);
        insertSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}
